<template>
	<div class="container" 
		v-on:click="handleGallaryClick">
	    <div class="wrapper">
	      	<swiper :options="swiperOptions">
		        <swiper-slide
		        	v-for="(item, index) in imgs"
		          	v-bind:key="index" >
		          	<img class="gallary-img" v-bind:src="item" />
		        </swiper-slide>
		        <div class="swiper-pagination" slot="pagination"></div>
	      	</swiper>
	    </div>
  	</div>
</template>

<!--
	1> 要充分了解老师的设计思路，当在banner上点击banner任意位置打开通用组件gallary,gallary类似模态框是通用组件，以模态框的形式来播放图片。
		.container就是默认播放背景，全屏展示、设置遮罩背景、z-index属性。
	2> 作为通用组件需要考虑一下问题，jquery时代的插件建议都有默认值，实际上我们这个组件唯一一个必须属性为imgs,这也可以理解，既然要轮播
		总要知道播放什么图片吧。
	3> 老师轮播组件awesome swiper的写法和我的已经不一样了，这既是swiperOptions的写法，这要要到swiper官方网站查阅api
		https://www.swiper.com.cn/api/observer/219.html->中文教程->在vue中使用swiper			
-->

<script type="text/javascript">
export default {
	name: 'CommonGallary',
	props: {
		imgs: {
  			type: Array,
  			default () {
    			return []
  			}
		}
	},
	data () {
		return {
			swiperOptions:{
				pagination:{
					el:'.swiper-pagination',
					type:"fraction"
				},
				observeParents: true,
    			observer: true
			}    		
		}
	},
	methods: {
		handleGallaryClick () {
	  		this.$emit('close')
		}
	}
}
</script>

<style lang="stylus" scoped>
/* 穿透冲突当前页面的swiper- */
.container >>> .swiper-container
    overflow: inherit
	.container
		display: flex
		flex-direction: column
		justify-content: center
		z-index: 99
		position: fixed
		left: 0
		right: 0
		top: 0
		bottom: 0
		background: #000
		.wrapper
			height: 0
			width: 100%
			padding-bottom: 100%
			.gallary-img
				width: 100%
			.swiper-pagination
				color: #fff
				bottom: -1rem
</style>
